using System;

namespace JGSY.CMS.LowCode.Platform.Application.DTOs
{
    /// <summary>
    /// 主题数据传输对象
    /// 用于网站主题管理的数据传输
    /// </summary>
    public class ThemeDto
    {
        /// <summary>
        /// 主题ID
        /// </summary>
        public Guid Id { get; set; }
        
        /// <summary>
        /// 主题名称
        /// </summary>
        public string Name { get; set; } = string.Empty;
        
        /// <summary>
        /// 主题显示名称
        /// </summary>
        public string DisplayName { get; set; } = string.Empty;
        
        /// <summary>
        /// 主题描述
        /// </summary>
        public string? Description { get; set; }
        
        /// <summary>
        /// 主题版本
        /// </summary>
        public string ThemeVersion { get; set; } = "1.0.0";
        
        /// <summary>
        /// 主题作者
        /// </summary>
        public string? Author { get; set; }
        
        /// <summary>
        /// 作者邮箱
        /// </summary>
        public string? AuthorEmail { get; set; }
        
        /// <summary>
        /// 作者网站
        /// </summary>
        public string? AuthorUrl { get; set; }
        
        /// <summary>
        /// 主题目录路径
        /// </summary>
        public string Path { get; set; } = string.Empty;
        
        /// <summary>
        /// 预览图片URL
        /// </summary>
        public string? PreviewImage { get; set; }
        
        /// <summary>
        /// 缩略图URL
        /// </summary>
        public string? Thumbnail { get; set; }
        
        /// <summary>
        /// 主题配置 (JSON格式)
        /// </summary>
        public string? Configuration { get; set; }
        
        /// <summary>
        /// 颜色配置 (JSON格式)
        /// </summary>
        public string? ColorScheme { get; set; }
        
        /// <summary>
        /// 字体配置 (JSON格式)
        /// </summary>
        public string? FontSettings { get; set; }
        
        /// <summary>
        /// 布局选项 (JSON格式)
        /// </summary>
        public string? LayoutOptions { get; set; }
        
        /// <summary>
        /// 支持的页面类型 (JSON格式)
        /// </summary>
        public string? SupportedPages { get; set; }
        
        /// <summary>
        /// 主题特性 (JSON格式)
        /// </summary>
        public string? Features { get; set; }
        
        /// <summary>
        /// 是否为系统主题
        /// </summary>
        public bool IsSystem { get; set; } = false;
        
        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnabled { get; set; } = true;
        
        /// <summary>
        /// 是否为默认主题
        /// </summary>
        public bool IsDefault { get; set; } = false;
        
        /// <summary>
        /// 是否支持响应式
        /// </summary>
        public bool IsResponsive { get; set; } = true;
        
        /// <summary>
        /// 是否支持深色模式
        /// </summary>
        public bool SupportsDarkMode { get; set; } = false;
        
        /// <summary>
        /// 使用次数
        /// </summary>
        public int UsageCount { get; set; } = 0;
        
        /// <summary>
        /// 下载次数
        /// </summary>
        public int DownloadCount { get; set; } = 0;
        
        /// <summary>
        /// 评分
        /// </summary>
        public decimal Rating { get; set; } = 0;
        
        /// <summary>
        /// 最小系统版本要求
        /// </summary>
        public string? MinSystemVersion { get; set; }
        
        /// <summary>
        /// 依赖项 (JSON格式)
        /// </summary>
        public string? Dependencies { get; set; }
        
        /// <summary>
        /// 兼容性信息 (JSON格式)
        /// </summary>
        public string? Compatibility { get; set; }
        
        /// <summary>
        /// SEO标题
        /// </summary>
        public string? SeoTitle { get; set; }
        
        /// <summary>
        /// SEO关键词
        /// </summary>
        public string? SeoKeywords { get; set; }
        
        /// <summary>
        /// SEO描述
        /// </summary>
        public string? SeoDescription { get; set; }
        
        /// <summary>
        /// 自定义标签 (JSON格式)
        /// </summary>
        public string? Tags { get; set; }
        
        /// <summary>
        /// 版本号
        /// </summary>
        public string Version { get; set; } = "1.0.0";
        
        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; } = "Active";
        
        /// <summary>
        /// 创建者ID
        /// </summary>
        public Guid? CreatedById { get; set; }
        
        /// <summary>
        /// 创建者姓名
        /// </summary>
        public string? CreatedByName { get; set; }
        
        /// <summary>
        /// 更新者ID
        /// </summary>
        public Guid? UpdatedById { get; set; }
        
        /// <summary>
        /// 更新者姓名
        /// </summary>
        public string? UpdatedByName { get; set; }
        
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreatedAt { get; set; }
        
        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdatedAt { get; set; }
        
        /// <summary>
        /// 最后使用时间
        /// </summary>
        public DateTime? LastUsedAt { get; set; }
        
        /// <summary>
        /// 安装时间
        /// </summary>
        public DateTime? InstalledAt { get; set; }
        
        /// <summary>
        /// 扩展属性 (JSON格式)
        /// </summary>
        public string? ExtendedProperties { get; set; }
    }
}
